λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ μν λ€μν μννΈμ¨μ΄ λ°°ν¬ μ λ΅μ μ¬μΈ΅μ μΌλ‘ νμνλ©°, ν¨μ¨μ μ΄κ³ μμ μ μΈ μ ν리μΌμ΄μ μ 곡μ μΆκ΅¬νλ κΈλ‘λ² λ μλ₯Ό μν΄ μ€κ³λμμ΅λλ€.
μννΈμ¨μ΄ μ 곡 λ§μ€ν°νκΈ°: λ°°ν¬ μ λ΅μ λν κΈλ‘λ² κ°μ΄λ
μ€λλ λΉ λ₯΄κ² μ§ννλ λμ§νΈ νκ²½μμ μννΈμ¨μ΄ μ λ°μ΄νΈλ₯Ό μμ μ μ΄κ³ ν¨μ¨μ μΌλ‘, κ·Έλ¦¬κ³ μ΅μνμ μ€λ¨μΌλ‘ μ 곡νλ λ₯λ ₯μ 무μλ³΄λ€ μ€μν©λλ€. λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ ν΅μ¬μ μ΄ λ³΅μ‘ν νλ‘μΈμ€λ₯Ό μ‘°μ¨νλ κ²μ λλ€. ν¨κ³Όμ μΈ λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ ν΅μ¬ μμλ κ²¬κ³ ν λ°°ν¬ μ λ΅μ μ±ννλ κ²μ λλ€. μ΄λ¬ν μ λ΅μ μννΈμ¨μ΄μ μ λ²μ μ΄ νλ‘λμ νκ²½μ λμ λλ λ°©μμ κ²°μ νλ©°, μ¬μ©μ κ²½νκ³Ό μμ€ν μμ μ±μμλΆν° λΉμ¦λμ€ μ°μμ± λ° μμ₯ λμλ ₯μ μ΄λ₯΄κΈ°κΉμ§ λͺ¨λ κ²μ μν₯μ λ―ΈμΉ©λλ€. μ΄ ν¬κ΄μ μΈ κ°μ΄λλ λ€μν λ°°ν¬ μ λ΅μ μ¬λ μκ² λ€λ£¨λ©°, νλ μννΈμ¨μ΄ μ 곡μ 볡μ‘μ±μ νμνλ κΈλ‘λ² λ μλ€μ μν ν΅μ°°λ ₯κ³Ό μ€ν κ°λ₯ν μ‘°μΈμ μ 곡ν©λλ€.
ν¨κ³Όμ μΈ λ°°ν¬μ κΈ°λ₯
νΉμ μ λ΅μ νμνκΈ° μ μ, λͺ¨λ λ°°ν¬λ₯Ό μ±κ³΅μ μΌλ‘ λ§λλ κΈ°λ³Έ μμΉμ μ΄ν΄νλ κ²μ΄ μ€μν©λλ€. μ΄λ¬ν κΈ°λ₯λ€μ μ§λ¦¬μ μμΉλ κΈ°μ μ€νμ κ΄κ³μμ΄ λ³΄νΈμ μΌλ‘ μ μ©λ©λλ€:
- μ λ’°μ±: λ°°ν¬ νλ‘μΈμ€ μμ²΄κ° μ€λ₯λ λΆμμ μ±μ μ λ°νμ§ μλλ‘ λ³΄μ₯ν©λλ€.
- ν¨μ¨μ±: μλ‘μ΄ μννΈμ¨μ΄ λ²μ μ λ°°ν¬νκ³ κ²μ¦νλ λ° νμν μκ°κ³Ό μμμ μ΅μνν©λλ€.
- μμ μ±: μλ‘μ΄ λ¦΄λ¦¬μ€λ‘ μΈν΄ λ°μν μ μλ μ μ¬μ μΈ λ¬Έμ λ‘λΆν° νλ‘λμ νκ²½κ³Ό μ΅μ’ μ¬μ©μλ₯Ό 보νΈν©λλ€.
- μλ: μ¬μ©μμ μ΄ν΄κ΄κ³μμκ² κ°μΉλ₯Ό λ λΉ λ₯΄κ² μ λ¬ν μ μλλ‘ ν©λλ€.
- κ°μμ±: μκΈ°μΉ μμ λ¬Έμ κ° λ°μν κ²½μ°λ₯Ό λλΉνμ¬ λͺ ννκ³ ν¨μ¨μ μΈ λ‘€λ°± κ³νμ κ°μΆκ³ μμ΅λλ€.
μΌλ°μ μΈ λ°°ν¬ μ λ΅ μ€λͺ
λ°°ν¬ μ λ΅μ μ νμ μ’ μ’ μ ν리μΌμ΄μ μν€ν μ², μν νμ© λ²μ, νμ μ±μλ, λΉμ¦λμ€ μꡬμ¬νκ³Ό κ°μ μμμ λ°λΌ λ¬λΌμ§λλ€. μ¬κΈ°μλ κ°μ₯ λ리 μ¬μ©λλ λͺ κ°μ§ μ λ΅μ μ΄ν΄λ³΄κ² μ΅λλ€:
1. λ‘€λ§ λ°°ν¬ (Rolling Deployment)
μ€λͺ : λ‘€λ§ λ°°ν¬λ μ ν리μΌμ΄μ μ μΈμ€ν΄μ€λ₯Ό νλμ© λλ μκ·λͺ¨ λ°°μΉ λ¨μλ‘ μ λ°μ΄νΈν©λλ€. κ° μΈμ€ν΄μ€κ° μ λ°μ΄νΈλ λ μ μ μλΉμ€μμ μ μΈλμλ€κ° λ€μ ν¬ν¨λ©λλ€. μ΄ κ³Όμ μ λͺ¨λ μΈμ€ν΄μ€κ° μ λ°μ΄νΈλ λκΉμ§ κ³μλ©λλ€.
μ₯μ :
- λ¨μμ±: λΉκ΅μ ꡬννκΈ° κ°λ¨ν©λλ€.
- 무μ€λ¨ (μ μ¬μ μΌλ‘): μ¬λ°λ₯΄κ² κ΄λ¦¬νλ©΄ μΈμ λ μ§ μΆ©λΆν μμ μΈμ€ν΄μ€κ° κ³μ μ΄μλλλ‘ λ³΄μ₯νμ¬ λ¬΄μ€λ¨ λ°°ν¬λ₯Ό λ¬μ±ν μ μμ΅λλ€.
- μμ ν¨μ¨μ±: μΌλ°μ μΌλ‘ μ λ°μ΄νΈ νλ‘μΈμ€ λμ νμ¬ νλ‘λμ μ€μ λ³΄λ€ μ½κ° λ λ§μ 리μμ€λ§ νμν©λλ€.
λ¨μ :
- νΌν© λ²μ : μΌμ κΈ°κ° λμ νλ‘λμ νκ²½μλ μ΄μ λ²μ κ³Ό μ λ²μ μ μ ν리μΌμ΄μ μ΄ νΌν©λμ΄ μ‘΄μ¬νκ² λλ©°, μ΄λ μ μ€νκ² μ²λ¦¬νμ§ μμΌλ©΄ νΈνμ± λ¬Έμ λ μκΈ°μΉ μμ λμμ μ λ°ν μ μμ΅λλ€.
- λλ¦° λ‘€λ°±: λ‘€λ°±μ μλ λ°°ν¬λ§νΌ μκ°μ΄ λ§μ΄ μμλ μ μμ΅λλ€.
- μΌκ΄μ± μλ μ¬μ©μ κ²½ν: μ¬μ©μλ λΌμ°ν λλ μΈμ€ν΄μ€μ λ°λΌ λ€λ₯Έ λ²μ μ μ ν리μΌμ΄μ κ³Ό μνΈ μμ©ν μ μμ΅λλ€.
μ¬μ© μκΈ°: λ€μ΄νμμ΄ νμ©λμ§ μκ³ μ μ§μ μΈ μ λ°μ΄νΈ νλ‘μΈμ€κ° νμ©λλ μ ν리μΌμ΄μ μ μ ν©ν©λλ€. μ’ μ’ μν λΉμ μ₯(stateless) μ ν리μΌμ΄μ μ΄λ μ μ€ν μΈμ κ΄λ¦¬κ° μ΄λ£¨μ΄μ§λ κ²½μ°μ μ¬μ©λ©λλ€.
2. λΈλ£¨κ·Έλ¦° λ°°ν¬ (Blue-Green Deployment)
μ€λͺ : λΈλ£¨κ·Έλ¦° λ°°ν¬μλ "λΈλ£¨(Blue)"μ "κ·Έλ¦°(Green)"μ΄λΌλ λ κ°μ λμΌν νλ‘λμ νκ²½μ΄ μμ΅λλ€. ν νκ²½(μ: λΈλ£¨)μ νμ± νΈλν½μ μ²λ¦¬νκ³ μκ³ , λ€λ₯Έ νκ²½(κ·Έλ¦°)μ μ ν΄ μνμ λλ€. μ ν리μΌμ΄μ μ μ λ²μ μ μ ν΄ νκ²½(κ·Έλ¦°)μ λ°°ν¬λ©λλ€. κ·Έλ¦° νκ²½μμ ν μ€νΈ λ° κ²μ¦μ΄ μλ£λλ©΄ νΈλν½μ΄ λΈλ£¨μμ κ·Έλ¦°μΌλ‘ μ νλ©λλ€. μ΄ν λΈλ£¨ νκ²½μ λ€μ λ°°ν¬λ₯Ό μν΄ μ¬μ©λκ±°λ λ‘€λ°± λμμΌλ‘ μ μ§λ μ μμ΅λλ€.
μ₯μ :
- μ¦κ°μ μΈ λ‘€λ°±: λ¬Έμ κ° λ°μνλ©΄ νΈλν½μ μμ μ μΈ λΈλ£¨ νκ²½μΌλ‘ μ¦μ λ€μ μ νν μ μμ΅λλ€.
- 무μ€λ¨: νΈλν½μ΄ μννκ² μ νλλ―λ‘ μΌλ°μ μΌλ‘ 무μ€λ¨ λ°°ν¬λ₯Ό λ¬μ±ν©λλ€.
- μμ¬μ΄ ν μ€νΈ: μ λ²μ μ μ€μκ°μΌλ‘ μ ννκΈ° μ μ κ·Έλ¦° νκ²½μμ μ² μ ν ν μ€νΈν μ μμ΅λλ€.
λ¨μ :
- λμ 리μμ€ λΉμ©: λ κ°μ λμΌν νλ‘λμ νκ²½μ μ μ§ν΄μΌ νλ―λ‘ μ ν κΈ°κ° λμ μΈνλΌ λΉμ©μ΄ λ λ°°κ° λ©λλ€.
- λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ λ³κ²½: λΈλ£¨μ κ·Έλ¦° κ°μ λ°μ΄ν°λ² μ΄μ€ μ€ν€λ§ νΈνμ±μ κ΄λ¦¬νλ κ²μ 볡μ‘ν μ μμΌλ©°, νΉν νμ νΈνμ±μ΄ μλ λ³κ²½ μ¬νμ΄ μλ κ²½μ° λμ± κ·Έλ μ΅λλ€.
- μν κ΄λ¦¬μ 볡μ‘μ±: μν μ μ₯(stateful) μ ν리μΌμ΄μ μ΄λ μ₯κΈ° μ€ν νΈλμμ μ μ²λ¦¬νλ €λ©΄ μ μ€ν κ³ λ €κ° νμν©λλ€.
κΈλ‘λ² μμ: μλ§μ‘΄κ³Ό κ°μ κΈλ‘λ² μ μμκ±°λ νλ«νΌμ ν΅μ¬ μλΉμ€μ λΈλ£¨κ·Έλ¦° λ°°ν¬λ₯Ό μ¬μ©ν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ νλ‘λμ μ λ―Έλ¬λ§νλ μ€ν μ΄μ§ νκ²½μ μ λ°μ΄νΈλ₯Ό νΈμνκ³ , μ² μ ν ν μ€νΈν λ€μ, μ μΈκ³ μλ°±λ§ λͺ μ μ¬μ©μμκ² μ΅μνμ μνμΌλ‘ νΈλν½μ μ¦μ μ νν μ μμ΅λλ€.
3. μΉ΄λ리 λ¦΄λ¦¬μ€ (Canary Release)
μ€λͺ : μΉ΄λ리 릴리μ€λ μ λ²μ μ μμμ μ¬μ©μλ μλ² κ·Έλ£Ήμ μ μ§μ μΌλ‘ λ°°ν¬νλ λ°©μμ λλ€. μ λ²μ μ΄ μ μλνλ©΄ μ¬μ©μ κΈ°λ°μ 100%μ λλ¬ν λκΉμ§ μ μ°¨ λ λ§μ μ¬μ©μμκ² λ°°ν¬ν©λλ€. λ¬Έμ κ° κ°μ§λλ©΄ λ°°ν¬λ₯Ό μ€λ¨νκ³ λ¬Έμ κ° μλ λ²μ μ λ‘€λ°±ν©λλ€.
μ₯μ :
- μν κ°μ: λ²κ·Έλ μ±λ₯ λ¬Έμ μ μν₯μ μμμ μ¬μ©μ κ·Έλ£ΉμΌλ‘ μ νν©λλ€.
- μ€νκ²½ ν μ€νΈ: νλ‘λμ νκ²½μμ μ€μ μ¬μ©μλ‘λΆν° μ‘°κΈ° νΌλλ°±μ μ 곡ν©λλ€.
- μ μ§μ λ°°ν¬: μ 체 λ¦΄λ¦¬μ€ μ μ λͺ¨λν°λ§ λ° νκ°κ° κ°λ₯ν©λλ€.
λ¨μ :
- 볡μ‘μ±: μ¬μ©μ νμ μ§ν©μ λΆλ¦¬νκΈ° μν΄ μ κ΅ν νΈλν½ κ΄λ¦¬ λ° λͺ¨λν°λ§ μμ€ν μ΄ νμν©λλ€.
- λΆλΆμ μ€λ¨ κ°λ₯μ±: μ νμ μ΄κΈ΄ νμ§λ§ μΌλΆ μ¬μ©μκ° λ¬Έμ λ₯Ό κ²½νν μ μμ΅λλ€.
- μ£μ§ μΌμ΄μ€ ν μ€νΈ: μΉ΄λ리 κ·Έλ£Ήμ΄ λͺ¨λ μλ리μ€μ λν΄ μ 체 μ¬μ©μ κΈ°λ°μ λννλμ§ νμΈνκΈ° μ΄λ €μΈ μ μμ΅λλ€.
κΈλ‘λ² μμ: ꡬκΈμ μ’ μ’ μ§λ©μΌμ΄λ κ΅¬κΈ μ§λμ κ°μ μΈκΈ° μλΉμ€μ μΉ΄λ리 릴리μ€λ₯Ό μ¬μ©ν©λλ€. νΉμ μ§μ(μ: μμ λ½)μ μ¬μ©μ 1%μκ² μλ‘μ΄ κΈ°λ₯μ 릴리μ€νκ³ μ±λ₯κ³Ό νΌλλ°±μ λͺ¨λν°λ§ν ν, μ μΈκ³ λ€λ₯Έ μ§μ λ° μ¬μ©μ μΈκ·Έλ¨ΌνΈλ‘ νμ₯ν μ μμ΅λλ€.
4. λ‘€λ§ μΉ΄λ리 λ¦΄λ¦¬μ€ (Rolling Canary Release)
μ€λͺ : μ΄ μ λ΅μ λ‘€λ§ λ°°ν¬μ μΉ΄λ리 릴리μ€μ μμλ₯Ό κ²°ν©ν©λλ€. λͺ¨λ νΈλν½μ ν λ²μ μ ννλ λμ , μ λ²μ μ λ‘€λ§ λ°©μμΌλ‘ μκ·λͺ¨ μλ² νμ μ§ν©μ λ°°ν¬ν©λλ€. μ΄ μλ²λ€μ΄ μ λ°μ΄νΈλλ©΄ ν(pool)μ λ€μ ν¬ν¨λκ³ , μλμ νΈλν½μ΄ μ΄λ€μκ² μ λ¬λ©λλ€. μ±κ³΅μ μ΄λ©΄ λ λ§μ μλ²κ° μ λ°μ΄νΈλκ³ νΈλν½μ΄ μ μ°¨ μ΄λλ©λλ€.
μ₯μ :
- λ λ°©μμ μν μν: μΉ΄λ리μ μ μ§μ λ°°ν¬μ λ‘€λ§ μ λ°μ΄νΈ νλ‘μΈμ€μ κ· νμ λ§μΆ₯λλ€.
- ν΅μ λ λ ΈμΆ: λμμ μ λ°μ΄νΈλλ μλ² μμ μ λ²μ μ λ ΈμΆλλ μ¬μ©μ λΉμ¨μ λͺ¨λ μ νν©λλ€.
λ¨μ :
- μ¦κ°λ 볡μ‘μ±: μλ² μ λ°μ΄νΈμ νΈλν½ λΌμ°ν λͺ¨λμ λν μ μ€ν μ‘°μ¨μ΄ νμν©λλ€.
5. A/B λ°°ν¬ (λλ A/B ν μ€ν λ°°ν¬)
μ€λͺ : μ£Όλ‘ ν μ€νΈ λ°©λ²λ‘ μ΄μ§λ§, A/B λ°°ν¬λ μλ‘μ΄ κΈ°λ₯μ 릴리μ€νλ λ°°ν¬ μ λ΅μΌλ‘ μ¬μ©λ μ μμ΅λλ€. μ ν리μΌμ΄μ μ λ λ²μ (Aμ B)μ΄ λ°°ν¬λλ©°, Bλ μΌλ°μ μΌλ‘ μλ‘μ΄ κΈ°λ₯μ΄λ λ³κ²½ μ¬νμ ν¬ν¨ν©λλ€. κ·Έλ° λ€μ νΈλν½μ μ’ μ’ μ¬μ©μ μμ±μ΄λ 무μμ ν λΉμ λ°λΌ Aμ Bλ‘ λΆν λμ΄ μ±λ₯ λ° μ¬μ©μ μ°Έμ¬ μ§νλ₯Ό μ§μ λΉκ΅ν μ μμ΅λλ€.
μ₯μ :
- λ°μ΄ν° κΈ°λ° μμ¬ κ²°μ : μ¬μ©μ νλμ λν κΈ°λ₯μ μν₯μ κ°κ΄μ μΌλ‘ μΈ‘μ ν μ μμ΅λλ€.
- λ°λ³΅μ μΈ κ°μ : μ¬μ©μ λ°μ΄ν°λ₯Ό κΈ°λ°μΌλ‘ ν κΈ°λ₯μ μ§μμ μΈ κ°μ μ μ©μ΄νκ² ν©λλ€.
λ¨μ :
- κ²¬κ³ ν λΆμ νμ: λΆμ λ° μ€ν λꡬμ κ°λ ₯ν κΈ°λ°μ΄ νμν©λλ€.
- κ΄λ¦¬κ° 볡μ‘ν μ μμ: νΈλν½μ λΆν νκ³ κ²°κ³Όλ₯Ό λΆμνλ λ° λ¦¬μμ€κ° λ§μ΄ μμλ μ μμ΅λλ€.
- μμν λ°°ν¬ μ λ΅μ΄ μλ: μ€μ λ‘€μμμ μν΄ μΉ΄λ리λ λ‘€λ§κ³Ό κ°μ λ€λ₯Έ μ λ΅κ³Ό ν¨κ» μ¬μ©λλ κ²½μ°κ° λ§μ΅λλ€.
κΈλ‘λ² μμ: λ€κ΅μ μμ λ―Έλμ΄ νλ«νΌμ A/B ν μ€ν μ μ¬μ©νμ¬ μλ‘μ΄ μ¬μ©μ μΈν°νμ΄μ€ λμμΈμ νκ°ν μ μμ΅λλ€. μμμ μ¬μ©μμ 50%μκ² λ²μ B(μ UI)λ₯Ό, λλ¨Έμ§ 50%μκ² λ²μ A(μ΄μ UI)λ₯Ό λ°°ν¬ν λ€μ, μ°Έμ¬ μκ°, κ²μ λΉλ, μ¬μ©μ λ§μ‘±λμ κ°μ μ§νλ₯Ό λΆμνμ¬ λ²μ Bμ κΈλ‘λ² μΆμλ₯Ό κ²°μ ν μ μμ΅λλ€.
6. νΌμ² νλκ·Έ (Feature Flags / κΈ°λ₯ ν κΈ)
μ€λͺ : νΌμ² νλκ·Έλ₯Ό μ¬μ©νλ©΄ κ°λ°μκ° μλ‘μ΄ μ½λλ₯Ό λ°°ν¬νμ§ μκ³ λ μ격μΌλ‘ κΈ°λ₯μ μΌκ±°λ λ μ μμ΅λλ€. μ ν리μΌμ΄μ μ½λλ κΈ°λ₯μ΄ ν¬ν¨λμμ§λ§ λΉνμ±νλ μνλ‘ λ°°ν¬λ©λλ€. κ·Έλ° λ€μ λ³λμ μμ€ν (νΌμ² νλκ·Έ κ΄λ¦¬)μ΄ νΉμ μ¬μ©μ, κ·Έλ£Ή λλ μ μΈκ³μ μΌλ‘ κΈ°λ₯μ΄ νμ±νλλμ§ μ¬λΆλ₯Ό μ μ΄ν©λλ€. μ΄λ λ°°ν¬μ κΈ°λ₯ 릴리μ€λ₯Ό λΆλ¦¬ν©λλ€.
μ₯μ :
- λΆλ¦¬λ 릴리μ€: μΈμ λ μ§ μ½λλ₯Ό λ°°ν¬νκ³ , μ€λΉκ° λλ©΄ κΈ°λ₯μ 릴리μ€ν©λλ€.
- μΈλΆνλ μ μ΄: νΉμ μ¬μ©μ μΈκ·Έλ¨ΌνΈ, μμΉ λλ λ² ν ν μ€ν°μκ² κΈ°λ₯μ λ°°ν¬ν©λλ€.
- μ¦κ°μ μΈ ν¬ μ€μμΉ: μ 체 μ½λ λ‘€λ°± μμ΄ λ¬Έμ κ° μλ κΈ°λ₯μ μ μνκ² λΉνμ±νν©λλ€.
λ¨μ :
- μ½λ 볡μ‘μ±: μ‘°κ±΄λΆ λ‘μ§μ μΆκ°νμ¬ μ½λ 볡μ‘μ±μ μ¦κ°μν¬ μ μμ΅λλ€.
- κΈ°μ λΆμ±: κ΄λ¦¬λμ§ μλ νλκ·Έλ κΈ°μ λΆμ±κ° λ μ μμ΅λλ€.
- κ΄λ¦¬ μ€λ²ν€λ: νλκ·Έλ₯Ό κ΄λ¦¬νκ³ λͺ¨λν°λ§νλ μμ€ν μ΄ νμν©λλ€.
κΈλ‘λ² μμ: λ·νλ¦μ€μ κ°μ μ€νΈλ¦¬λ° μλΉμ€λ νΌμ² νλκ·Έλ₯Ό μ¬μ©νμ¬ μλ‘μ΄ μΆμ² μκ³ λ¦¬μ¦μ μ μ§μ μΌλ‘ λ°°ν¬ν μ μμ΅λλ€. νΈμ£Ό μ¬μ©μμ μΌλΆμκ² μ΄λ₯Ό νμ±ννκ³ μ±λ₯μ λͺ¨λν°λ§ν λ€μ, μλ‘μ΄ μ½λ λ°°ν¬ μμ΄ λΈλΌμ§, μΊλλ€, λ μΌκ³Ό κ°μ λ€λ₯Έ κ΅κ°λ‘ μ μ°¨ νμ₯ν μ μμ΅λλ€.
7. μ¬μμ± λ°°ν¬ (Recreate Deployment / λΉ λ± / μΌκ΄ λ°°ν¬)
μ€λͺ : μ΄λ κ°μ₯ κ°λ¨νμ§λ§ μ’ μ’ κ°μ₯ μνν λ°°ν¬ μ λ΅μ λλ€. μ΄μ λ²μ μ μ ν리μΌμ΄μ μ μμ ν μ’ λ£ν λ€μ μ λ²μ μ λ°°ν¬ν©λλ€. μ΄λ‘ μΈν΄ λ€μ΄νμμ΄ λ°μν©λλ€.
μ₯μ :
- λ¨μμ±: ꡬννκΈ° λ§€μ° κ°λ¨ν©λλ€.
- λ²μ μΆ©λ μμ: ν λ²μ νλμ μ ν리μΌμ΄μ λ²μ λ§ μ€νλ©λλ€.
λ¨μ :
- λ€μ΄νμ: νμμ μΈ λ€μ΄νμ κΈ°κ°μ΄ ν¬ν¨λ©λλ€.
- λμ μν: μ λ°°ν¬κ° μ€ν¨νλ©΄ μ ν리μΌμ΄μ μ μ¬μ©ν μ μκ² λ©λλ€.
μ¬μ© μκΈ°: μΌλ°μ μΌλ‘ μ€μν μ¬μ©μ λλ©΄ μ ν리μΌμ΄μ μλ κΆμ₯λμ§ μμ΅λλ€. μ¬μ©λμ΄ μ μ λ΄λΆ λꡬλ μμ λ λ€μ΄νμμ΄ κ°λ₯νκ³ μ λ¬λλ μ ν리μΌμ΄μ μλ νμ©λ μ μμ΅λλ€.
κΈλ‘λ² μ΄μμ μ ν©ν μ λ΅ μ ννκΈ°
λ°°ν¬ μ λ΅μ μ νμ λͺ¨λ κ²½μ°μ μ μ©λλ λ¨μΌν κ²°μ μ΄ μλλλ€. λͺ κ°μ§ μμλ₯Ό κ³ λ €ν΄μΌ ν©λλ€:
- μ ν리μΌμ΄μ μ€μλ: μ ν리μΌμ΄μ μ΄ λΉμ¦λμ€ μ΄μμ μΌλ§λ μ€μνκ°? μ€μλκ° λμμλ‘ λ€μ΄νμκ³Ό μνμ μ΅μννλ μ λ΅μ΄ νμν©λλ€.
- μ¬μ©μ κΈ°λ° κ·λͺ¨ λ° λΆν¬: λ€μν μ§λ¦¬μ μμΉμ λ€νΈμν¬ μ‘°κ±΄μ κ°μ§ κΈλ‘λ² μ¬μ©μ κΈ°λ°μ μΌκ΄λ κ²½νμ 보μ₯νκ³ μ μ¬μ μΈ μ§μλ³ μ±λ₯ λ³νλ₯Ό κ΄λ¦¬νλ μ λ΅μ΄ νμν©λλ€.
- μν νμ© λ²μ: λ²κ·Έλ μ±λ₯ μ νλ₯Ό λμ νλ λ° νμ©λλ μν μμ€μ μ΄λ μ λμΈκ°?
- ν μ±μλ λ° λꡬ: νμ΄ μΉ΄λ리 릴리μ€λ νΌμ² νλκ·Έμ κ°μ 볡μ‘ν μ λ΅μ ꡬννκ³ κ΄λ¦¬νλ λ° νμν κΈ°μ κ³Ό λꡬλ₯Ό κ°μΆκ³ μλκ°?
- μΈνλΌ μλ: κΈ°μ‘΄ μΈνλΌκ° μ΄μ€ νκ²½(λΈλ£¨κ·Έλ¦°μ©)μ΄λ μ κ΅ν νΈλν½ λΌμ°ν μ μ§μν μ μλκ°?
- κ·μ μ건: μΌλΆ μ°μ μλ λ°°ν¬ κ΄νμ μν₯μ λ―ΈμΉλ νΉμ κ·μ μ€μ μκ±΄μ΄ μμ μ μμ΅λλ€.
κΈλ‘λ² μ»¨ν μ€νΈμμ μ λ΅ κ΅¬ννκΈ°
κΈλ‘λ² κ·λͺ¨λ‘ μ΄μν λλ μΆκ°μ μΈ κ³ λ € μ¬νμ΄ μμ΅λλ€:
- μκ°λ: λ°°ν¬λ λ€λ₯Έ μκ°λμ μ¬μ©μμκ² λ―ΈμΉλ μν₯μ μ΅μννλλ‘ μμ½λμ΄μΌ ν©λλ€. μ΄λ μ’ μ’ νΉμ μ§μμ λΉ-νΌν¬ μκ°μ λͺ©νλ‘ ν¨μ μλ―Έν©λλ€.
- λ€νΈμν¬ μ§μ° μκ°: μ§λ¦¬μ μΌλ‘ λΆμ°λ μλ²μ λ°°ν¬ν λλ λ€μν λ€νΈμν¬ μλμ μ§μ° μκ°μ κ³ λ €ν΄μΌ ν©λλ€.
- μ§μλ³ κ·μ μ€μ: λ°μ΄ν° κ°μΈ μ 보 λ³΄νΈ κ·μ (μ: μ λ½μ GDPR)μ΄λ κΈ°ν νμ§ λ²λ₯ μ΄ λ°°ν¬ μ€ λλ λ°°ν¬ ν λ°μ΄ν° μ²λ¦¬ λ°©μμ μν₯μ λ―ΈμΉ μ μμ΅λλ€.
- νμ§ν λ° κ΅μ ν: μ λ²μ μ΄ νμν λͺ¨λ μΈμ΄μ λ¬Ένμ λμμ€λ₯Ό μ§μνλμ§ νμΈν©λλ€. λ°°ν¬ μ λ΅μ μ 체 κΈλ‘λ² μΆμ μ μ μ΄λ¬ν μΈ‘λ©΄μ μ² μ ν ν μ€νΈν μ μλλ‘ ν΄μΌ ν©λλ€.
κΈλ‘λ² λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ μν λͺ¨λ² μ¬λ‘
μ¬λ°λ₯Έ μ λ΅μ μ ννλ κ² μΈμλ, λͺ κ°μ§ λͺ¨λ² μ¬λ‘λ₯Ό ν΅ν΄ μ μΈκ³ μννΈμ¨μ΄ λ°°ν¬μ μ±κ³΅λ₯ μ λμΌ μ μμ΅λλ€:
1. μλν μμ©
λΉλ λ° ν μ€νΈμμλΆν° λ°°ν¬ λ° λͺ¨λν°λ§μ μ΄λ₯΄κΈ°κΉμ§ λ°°ν¬ νμ΄νλΌμΈμ μ΅λν μλννμμμ€. μ΄λ μΈμ μ€λ₯λ₯Ό μ€μ΄κ³ νλ‘μΈμ€ μλλ₯Ό λμ λλ€. Jenkins, GitLab CI/CD, GitHub Actions, CircleCI, Spinnakerμ κ°μ λꡬλ μ΄λ₯Ό μν΄ λ§€μ° μ€μν©λλ€.
2. κ²¬κ³ ν λͺ¨λν°λ§ λ° κ²½κ³ μμ€ν ꡬν
λͺ¨λ μ§μμμ μ ν리μΌμ΄μ μ±λ₯, μ€λ₯μ¨, 리μμ€ μ¬μ©λμ μΆμ νκΈ° μν΄ ν¬κ΄μ μΈ λͺ¨λν°λ§μ κ°μΆμμμ€. μ΄μ μ§νκ° μμ κ²½μ° νμ μ¦μ μ리λλ‘ κ²½κ³ λ₯Ό μ€μ νμμμ€. μ΄λ νΉν μΉ΄λ리 λλ λ‘€λ§ λ°°ν¬μμ λ¬Έμ λ₯Ό μ‘°κΈ°μ κ°μ§νλ λ° μ€μν©λλ€.
3. μ§μμ μΈ ν μ€νΈ μ€μ²
λ¨μ ν μ€νΈ, ν΅ν© ν μ€νΈ, μλν¬μλ ν μ€νΈ, μ±λ₯ ν μ€νΈ, 보μ ν μ€νΈ λ± λ€μν μμ€μ ν μ€νΈλ₯Ό νμ΄νλΌμΈμ ν΅ν©νμμμ€. μλνλ ν μ€νΈλ λ°°ν¬ μ νμ μ€νλμ΄μΌ ν©λλ€.
4. λͺ νν λ‘€λ°± κ³ν κ°λ°
λͺ¨λ λ°°ν¬ μ λ΅μλ μ μ μλκ³ ν μ€νΈλ λ‘€λ°± μ μ°¨κ° ν¬ν¨λμ΄μΌ ν©λλ€. μμ μ μΈ λ²μ μΌλ‘ μ μνκ² λλ리λ λ°©λ²μ μλ κ²μ λ€μ΄νμκ³Ό μ¬μ©μ μν₯μ μ΅μννλ λ° μ€μν©λλ€.
5. ν κ°μ νμ μ΄μ§
ν¨κ³Όμ μΈ λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ κ°λ°, μ΄μ, νμ§ λ³΄μ¦ λ° μ ν κ΄λ¦¬ ν κ°μ κΈ΄λ°ν νμ μ΄ νμν©λλ€. 곡μ λ μ΄ν΄μ μμ¬μν΅μ΄ ν΅μ¬μ λλ€.
6. κ΅¬μ± ν¨κ³Όμ μΌλ‘ κ΄λ¦¬
κ΅¬μ± κ΄λ¦¬ λꡬ(μ: Ansible, Chef, Puppet, Terraform)λ λ€μν νκ²½κ³Ό μ§λ¦¬μ μμΉμμ μΌκ΄μ±μ 보μ₯νλ λ° νμμ μ λλ€.
7. μκ² μμνκ³ λ°λ³΅νκΈ°
μλ‘μ΄ λ°°ν¬ μ λ΅μ μ±νν λλ λ μ€μν μ ν리μΌμ΄μ μ΄λ λ΄λΆ λκ΅¬λ‘ μμνμμμ€. κ°μ₯ μ€μν μμ€ν μ μ μ©νκΈ° μ μ κ²½νμ μκ³ νλ‘μΈμ€λ₯Ό κ°μ νμμμ€.
8. λͺ¨λ κ²μ λ¬ΈμννκΈ°
λ°°ν¬ νλ‘μΈμ€, μ λ΅ λ° λ‘€λ°± μ μ°¨μ λν λͺ ννκ³ μ΅μ λ¬Έμλ₯Ό μ μ§νμμμ€. μ΄λ νΉν λΆμ°λ κΈλ‘λ² νμμ μ§μ 곡μ λ° μ κ· νμ μ¨λ³΄λ©μ λ§€μ° μ€μν©λλ€.
λ°°ν¬ μ λ΅μ λ―Έλ
λ¦΄λ¦¬μ€ μμ§λμ΄λ§ λ° λ°°ν¬ λΆμΌλ λμμμ΄ μ§ννκ³ μμ΅λλ€. Gitμ΄ μ μΈμ μΈνλΌ λ° μ ν리μΌμ΄μ μ λ¨μΌ μ§μ€ 곡κΈμ(single source of truth)μΈ GitOpsμ κ°μ νΈλ λκ° μ μ λ μ€μν΄μ§κ³ μμ΅λλ€. λ§μ΄ν¬λ‘μλΉμ€ μν€ν μ²μ λΆμ λν μλ§μ λ 립μ μΈ μλΉμ€μ 볡μ‘μ±μ κ΄λ¦¬ν μ μλ λ μ κ΅ν λ°°ν¬ μ λ΅μ νμλ‘ ν©λλ€. ν΄λΌμ°λ λ€μ΄ν°λΈ κΈ°μ μ΄ μ±μν¨μ λ°λΌ μ μΈκ³μ μΌλ‘ μ ν리μΌμ΄μ μ λ°°ν¬νκ³ κ΄λ¦¬νλ λꡬμ κΈ°μ λ λ°μ ν κ²μ λλ€.
κ²°λ‘
λ°°ν¬ μ λ΅μ λ§μ€ν°νλ κ²μ κΈλ‘λ² λΉμ¦λμ€λ₯Ό μμνλ λͺ¨λ μ‘°μ§μκ² μ±κ³΅μ μΈ λ¦΄λ¦¬μ€ μμ§λμ΄λ§μ μ΄μμ λλ€. λ‘€λ§ λ°°ν¬μ λ¨μμ±μμλΆν° μΉ΄λ리 릴리μ€μ μν μν, νΌμ² νλκ·Έμ 민첩μ±μ μ΄λ₯΄κΈ°κΉμ§ λ€μν μ κ·Ό λ°©μμ μ₯λ¨μ μ μ΄ν΄ν¨μΌλ‘μ¨ κΈ°μ μ λ νλ ₯μ μ΄κ³ λ°μμ΄ λΉ λ₯΄λ©° μ¬μ©μ μ€μ¬μ μΈ μννΈμ¨μ΄ μ 곡 νμ΄νλΌμΈμ ꡬμΆν μ μμ΅λλ€. μλν, κ²¬κ³ ν λͺ¨λν°λ§, κ·Έλ¦¬κ³ λΆμ κ° νμ μ μμ©νλ©΄ νμ΄ κ΅μ μννΈμ¨μ΄ μ 곡μ 볡μ‘μ±μ νμνμ¬ μ μΈκ³ μ΄λμ μλ μ¬μ©μμκ² κ°μΉκ° ν¨μ¨μ μ΄κ³ μμ μ μΌλ‘ μ λ¬λλλ‘ λ³΄μ₯ν μ μμ΅λλ€.